/**
 * 
 */
package fr.flogo.destinee.objects;

import javax.microedition.khronos.opengles.GL10;

import android.opengl.GLSurfaceView.Renderer;

/**
 * Interface for drawn objects
 * @author Florian GOLESTIN
 * @version 0.1
 */
public interface IGLObject {
	/**
	 * Function called when the Object need to be drawn.
	 * @param gl {@link GL10} From the {@link Renderer}
	 */
	public void draw(GL10 gl);
	
	/**
	 * Make a translation of the object with the given parameters. Don't modify the original matrix. 
	 * @param x
	 * @param y
	 * @param z
	 */
	public void translate(float x, float y, float z);
	
	/**
	 * Make a rotation of the object with given parameters. Don't modify the original matrix. 
	 * @param angle In degree
	 * @param x
	 * @param y
	 * @param z
	 */
	public void rotation(float angle, float x, float y, float z);
	
	/**
	 * Is this object can be walked though
	 * @return true if is walked through
	 */
	public boolean isFranchisable();
}
